package com.nas.crocus.domain;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.codehaus.jackson.map.annotate.JsonDeserialize;

import com.nas.crocus.ext.DateJacksonDeserializer;
import com.nas.crocus.ext.TimeJacksonDeserializer;

@Entity
@Table(name = "Vuelo")
public class Vuelo {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "vueloId")
    private Long id;
    
    @ManyToOne
    @JoinColumn(name = "rutaId")
    private Ruta ruta;
    
    @Column(name = "vueloOrigenDestino")
    private String origenDestino;
    
    @Column(name = "vueloCodigo")
    private String vuelo;
    
    @Column(name = "vueloFecha")
    private Date fecha;
    
    @Column(name = "vueloHoraSalida")
    private Date horaSalida;
    
    @Column(name = "vueloHoraLlegada")
    private Date horaLlegada;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }


    public Ruta getRuta() {
        return ruta;
    }

    public void setRuta(Ruta ruta) {
        this.ruta = ruta;
    }

    public String getOrigenDestino() {
        return origenDestino;
    }

    public void setOrigenDestino(String origenDestino) {
        this.origenDestino = origenDestino;
    }

    public String getVuelo() {
        return vuelo;
    }

    public void setVuelo(String vuelo) {
        this.vuelo = vuelo;
    }

    public Date getFecha() {
        return fecha;
    }

    @JsonDeserialize(using=DateJacksonDeserializer.class)
    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Date getHoraSalida() {
        return horaSalida;
    }

    @JsonDeserialize(using=TimeJacksonDeserializer.class)
    public void setHoraSalida(Date horaSalida) {
        this.horaSalida = horaSalida;
    }

    public Date getHoraLlegada() {
        return horaLlegada;
    }

    @JsonDeserialize(using=TimeJacksonDeserializer.class)
    public void setHoraLlegada(Date horaLlegada) {
        this.horaLlegada = horaLlegada;
    }
    
    
    
}
